Fundamentally, computer systems are used for the storage, retrieval, manipulation, and analysis of data. Computer systems typically include a combination of hardware (e.g., semiconductors, circuit boards, etc.) and software (e.g., computer programs). The software includes instructions that execute on (or are performed by) the hardware, in order to store, retrieve, manipulate, and analyze the data.
Some software applications (often called legacy applications) were developed or written many years ago. These legacy applications are often stable and reliable after having been fully tested over years of use. Often, users would like to add new functions to or change existing functions in the legacy applications. But, they may be reluctant or unable to modify the legacy applications because the source code (from which the instructions were created) no longer exists, the programmers who created the legacy applications are gone, or the risk of introducing errors into a reliable and important application is high. Thus, modifying legacy applications can be expensive, time-consuming, error-prone, and frustrating.
Hence, what is needed is an enhanced technique for modifying legacy applications.